C语言char型变量与ASKII码
一,C语言中字符定义方式 支持 char a=’A’ //定义一个字符变量名字是a值为A 支持 char a=65 //直接写阿克斯码值与上文效果一样 不能定义char *c=’a’//字符是常量不是地址 但是可以这样定义字符串 比如char *str=“abcd” 或者char *str; str=“abcde”//就是把字符串首元素地址给str的意思 二,字符串加减乘除都是转化成阿克斯码进行的 最后一般本身也保留整数 1,char+char=int 2int+char=int
9+字符0的值就是9加上字符0的阿克斯码值48 答案为9+48=57(也就是字符9的阿克斯码值)
三,区分字符’\0’和字符’0’ \0字符的阿克斯码为0 字符0的阿克斯码值为49
我们来分析这题 这题型参是数组所以传入的是地址 *p也就代表字符串“0ABCDEF/0”首元素字符’0’的地址 字符0的阿克斯码不为0所以进入while循环 一直到最后一个字符\0它的阿克斯码为0才可以结束循环 所以循环结束时候p指向’/0’ p是指针变量指向是可以改变的(但是数组名s是地址常量无法改变)p-s两个地址相减 答案是一个数值(就是两个指针存储空间差几个单位)所以这题答案是/0和0的距离 也就是7