笨方法学c之valgrind
版本实效了 直接官网下载
然后其他的步骤一样,换成下载的绝对路径就可以了
例如
tar -xjvf '/home/kkk/下载/valgrind-3.22.0.tar.bz2'
unsigned 加倍了 练习7
char为什么可以和int相乘
在C语言中,当char类型和int类型进行运算时,char类型会先自动转换为int类型,然后再进行运算。 因此,当char和int相乘时,char类型会被先转换为int类型,然后进行乘法运算,最终得到的结果也是int类型。
int型数组没有的用0 填充 char型没有的用\0
5th已经是\0,输出不显示,6th则是乱码了,当赋值给a[5]时相当于扩展了数组空间
看6th 也就是a[5]
这样定义的数组,arr=arr[0]=&arr 都等于第一个元素的地址 无法对这个值进行改变
int *p = a
p是指向a这个变量的地址
*p 取这个地址所存储的值
&p 是取指向a这个变量的地址的p所存储的地址
arr不能改变,但是用int *pa = &arr[0]
pa是地址,arr[0]这个元素的地址,*pa是取这个地址的值
数组类型的指针
先指针再数组就是数组类型的指针
先数组再指针就是数组元素为指针的数组
总结先什么就是什么
*arr[0] ==10
arr[1] ==20
单引号与双引号的区别:单引号常用于定义字符常量,但是里面不可为空,不可超过一个字符;双引号常用于定义字符串常量,字符串产量最后有\0 表示空字符
定义数组最好用[] 不要用 ,会出现无法修改值的问题
这样两种定义都可以修改
便利二维字符串数组三种方法都可以。
这样也可以