2020春-C高级--第一周视频内容大纲

1、格式控制字符,%p、%x、%lu的区别

%p格式符:表示输出地址值,以十六进制的无符号整数表示的,其字长一般与主机的字长相同,在有些编译器里有前导符0x。
%x格式符:以无符号十六进制整数形式(小写)输出,不输出前导符0x。
%lu格式符:unsigned long型,用来输出无符号长整数型。
%ld格式符:用来输出长整型数。

1.1 在大家学习mooc时,运行图中代码的结果与DEV-C++结果可能不同,%p的输出结果中没有前导符号0x,主要原因是编译器工具不同。

DEV-C++的32位编译输出结果是:
另外DEv-C++的64位编译输出结果是:
其中DEV-C++编译器的通过菜单栏【工具】,点击【编译选项】,弹出框中通过修改【设定编译器配置】的值修改编译器。 ###2、第1-4周:指针与字符串中1指针与字符串的视频1【1.1.取地址运算】的重点内容 - sizeof()是一个运算符,给出某个类型或变量在内存中所占据的字节数,比如sizeof(int)/sizeof(i) - 运算符&,是C语言中的运算符,操作数必须是变量,作用是取得变量的地址,注意输出地址时printf函数中的格式符用%p。 - 运算符&不可以对表达式等没有地址的东西取地址,比如printf("%p\n",&(a+b));是错误的。 - 运算符&可对下列变量取值: - 相邻变量,相邻变量的地址一般相差4,说明相邻定义的两个变量在内存里是紧挨着存放的。 - 对数组取地址,数组中各个元素是相邻存放的,且对于数组a,&a和a和&a[0]是相同的。

3、第1-4周:指针与字符串中1指针与字符串的视频2【1.1.2指针定义】

  • 指针 就是保存地址的变量。int p=&i;号表示p是一个指针,int *表示p是一个指向int类型数据的指针,赋值是将p指向变量i,也就是把i的地址赋值给p。
  • 指针变量中的 * 可靠近int也可靠近p,但是 * 是p的不是int的,C语言中没有int*这种类型。
  • 普通变量的值是实际的值,指针变量的值是具有实际值的变量的地址。
  • 作为参数的指针:void f(int *p),当调用f时则需要交给它一个地址:int i=0,f(&i);而不是传递给它这个变量本身或者这个变量的值。
  • 符号 * 是一个单目运算符,用来访问指针的值所表示的地址上的变量,*p做作为一个整体使用。
  • 函数调用是值的传递,传递地址时,函数内外可通过地址进行通话。

3、第1-4周:指针与字符串中1指针与字符串的视频2【1.1.3指针的应用场景】

  • 通过函数调用传递地址,实现交换两个变量的值
  • 通过指针,实现函数调用返回多个返回值,有时函数返回运算的状态,运算结果通过指针返回。
  • 常见错误:定义了指针变量,没有赋初值,即没有使用指针变量指向任何一个变量,那么初值可能是随机的或者指向一个无法访问的空间,进而导致错误。

posted on 2020-03-03 13:19  niuxiaoxia  阅读(341)  评论(0编辑  收藏  举报

导航