const在前在后问题,strcpy问题,条件,异或互换

char *

char str[] = “Hello, World!”;
char* ptr = str; // 指向字符数组的首地址
常用指针指向一个数组,并可通过指针遍历该数组
while (*ptr != ‘\0’) {
std::cout << *ptr;
ptr++;//这就是往后面取值
}

const char *ptr

const char *ptr 表示的是指向常量的指针,不能通过该指针去修改指针所指向地址中的内容,但是可以修改该指针的指向。 可以通过其他普通指针对同样地址中的数据进行修改。
注意:普通指针就是指char *ptr,即无const。

char const *ptr

char const *ptr 和 const char *ptr 等价。

区分:

即看const在指针前还是指针后,若在指针前,则表示指针指向的是常量,不可以通过*ptr=‘a’的形式去赋值到ptr指向的值改变该值,但是可以c=a,自己改变,注意这里没有通过指针改变。若在指针后,则表示该指针为一个常量,即该指针表示的地址为定值,不可以改变指针的指向,可以通过指针赋值改变指针所指地址的值,这与前者相反。

char * const ptr

char * const ptr 表示的是指针的指向不可以被修改,但是可以修改指针指向地址中的内容。

总结

const char *ptr 表示的是指向常量的指针,不能通过该指针去修改指针所指向地址中的内容,但是可以修改该指针的指向。

char const *ptr 和 const char *ptr 等价。

char * const ptr 表示的是指针的指向不可以被修改,但是可以修改指针指向地址中的内容。

const放在号前表示修饰的是指针指向的对象,const放在号后表示修饰的是指针本身。

所以strcpy(char*,const char*)

中的char表普通指针,const char表示不可以通过该指针去改变指针的值。所以strcpy(s1,s2)中s1必须是字符型数组的基地址,即char*(因为要把s2赋给s1,所以s1必须是一个变量,而不能是一个常量,所以必须能用指针来改变s1的值。而s2可以是字符数组名或字符串常量。
所以其实只需要注意s1定义的数组不可为const char str即可。
补充:在给字符数组赋值时,直接str【10】=“fsfsf”;用双引号即可。
**注意:**strcpy是对字符数组处理的,不可以对整数用哦,整数可用异或运算,a=b=a^=b可以交换a和b的值。

条件判断:z=(a>b)?a:b;

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值