首页 > 其他分享 >字符指针与字符数组的初始化

字符指针与字符数组的初始化

时间:2024-01-13 23:13:45浏览次数:33  
标签:字符 存储 常量 初始化 字符串 world hello 指针

  • 字符指针可以初始化赋值一个字符串,字符数组初始化也可以赋值一个字符串。两者的区别是什么呢?
#include <stdio.h>
#include <string.h>
int main()
{
    char *p = "hello"; //把字符串常量"hello"的首地址赋给p
    char c[10] = "hello"; //等价于strcpy(c, "hello");
    c[0] = 'H';
    printf("c[0]=%c\n",c[0]);
    printf("p[0]=%c\n",p[0]);
    //p[0] = 'H'; //非法,不可以对常量区数据进行修改
    p = "world";  //把另一个字符串常量"world"的首地址赋给p
    //字符串常量存储在内存条的数据区。
    //c = "world";  //非法,c中存储的是字符数组的首地址
    puts(p);
    return 0;
}

编译器在编译时,将字符串型常量存储在数据区中的常量区,这样做的好处是相同的字符串如"hello"只会存储一次,常量的含义是存储在此区域中的字符串本身是不可修改的。

  • p是一个指针变量,因此我们可以将字符串"world"的首地址重新赋给p,而数组名c本身存储的就是数组的首地址,是确定的、不可修改的,c等价于符号常量。

标签:字符,存储,常量,初始化,字符串,world,hello,指针
From: https://www.cnblogs.com/paopaotangzu/p/17963165

相关文章

  • 反转字符串中的单词
    最开始我是用笨方法解决的,就是新建了一个字符串,不断增加限制条件来实现的。点击查看代码classSolution{public:stringreverseWords(strings){stringtemp;stringcnt;intsz=s.size();intj=0;for(inti=sz-1;i>=0;i--){if(s[i]!=''){temp.push......
  • C++实现文件内查找字符串
    实现概要:读取放入buf后查找匹配的第一个字符然后使用seek()移动文件指针,peek()查看剩余的字符是否匹配如果剩余的字符匹配把该字符串在文件中的位置push进一个vector<int>中再继续查看剩余的文件内容//str2.cpp--capacity()andreserve()#include<iostream>......
  • 【教3妹学编程-算法题】构造限制重复的字符串
    3妹:“太阳当空照,花儿对我笑,小鸟说早早早,你为什么背上炸药包”2哥:3妹,什么事呀这么开森。3妹:2哥你看今天的天气多好啊,最近一周都是大晴天,艳阳高照2哥:是啊,天气不冷不热的,很适合生活3妹:据说南方的小土豆都跑到北方滑雪了,哈哈哈哈2哥:泼水成冰好玩是好玩,但是一定要注意防寒哦,看新闻都有......
  • C++ --- 智能指针
    一、智能指针存在的意义智能指针主要解决以下问题:(1)内存泄漏:内存手动释放,使用智能指针可以自动释放。(2)共享所有权指针的传播和释放,比如多线程使用同一个对象时析构问题。 智能指针的实现依赖于C++语言的RAII(资源获取即初始化)技术,即资源的获取和释放应该与对象的构造和析构分......
  • SQL SERVER日期时间转字符串
    SQLSERVER日期时间转字符串一、sql server日期时间函数--当前系统日期、时间selectgetdate()--dateadd在向指定日期加上一段时间的基础上,返回新的datetime值--例如:向日期加上2天selectdateadd(day,2,'2004-10-15')--返回:2004-10-1700:00:00.000--datediff......
  • [Palo Alto] Palo Alto安全防火墙初始化配置实例
    PaloAlto防火墙PaloAlto防火墙是一种高级的网络安全设备,由PaloAltoNetworks网络安全公司设计制造,用于保护企业网络免受各种网络威胁和入侵。PaloAlto防火墙提供以下网络安全功能:应用程序可见性和控制:PaloAlto防火墙可以深度检测和识别网络流量中的应用程序,包括常见的Web应用......
  • #yyds干货盘点# LeetCode程序员面试金典:至少有 K 个重复字符的最长子串
    题目给你一个字符串s和一个整数k,请你找出s中的最长子串,要求该子串中的每一字符出现次数都不少于k。返回这一子串的长度。如果不存在这样的子字符串,则返回0。 示例1:输入:s="aaabb",k=3输出:3解释:最长子串为"aaa",其中'a'重复了3次。示例2:输入:s="aba......
  • 【教3妹学编程-算法题】统计出现过一次的公共字符串
    3妹:哈哈哈哈哈哈,太搞笑了~呵呵呵呵呵呵2哥:3妹干嘛呢,笑的这么魔性!3妹:在看王牌对王牌,老搞笑了2哥:这季好像没有贾玲吧。3妹:是啊,听说贾玲去导电影了,还狂瘦了100斤呢,哎,我也该减减肥了。2哥:切,你每隔几天就会说要减肥,也没见你减啊3妹:不吃饱哪有力气减肥,我每天还要刷题、找工作,多辛苦啊......
  • 筛选列表中的元素 与 删除元素中的字符串 的区别
    字符串分割为列表re.split(pat,string)pandas.Series([string]).astype(str).str.split(pat)先删除字符串首尾字符串,再分隔re.split(pat,string2.sptrip())先删除字符串中的字符串,再分隔re.split(pat,string.replace(string2,"")筛选列表中的元素[itemforiteminlisif......
  • # w 与[a-zA-Z0-9_] 区别在于 w 匹配了unicode字符 包含中文!
    #importre#importpandasaspd#pat(字母数字-)以外的任何(字符串)#根据pat分割字符串defmyfun(pat:str,string=r'12-en中文'):lis=re.split(pat,string)ser=pd.Series(string).str.split(pat)display(lis,pd.DataFrame(ser))myfun(r"......