c语言-c 语言 字符串和 数组

问题描述

c 语言 字符串和 数组

char * a = "abc";
char a[4] = "abc";
以上有什么区别和联系

解决方案

char * a = "abc";
其实是

char 一个你看不见的变量[] = "abc";
char *a =  一个你看不见的变量;

解决方案二:

前者是一个字符指针,定义时仅分配了指针变量的空间,该指针指向一个字符串常量“abc”的首地址,a可修改(可做左值)但a[i]是不允许修改的。
后者是一个字符数组,定义时已经分配了空间并初始化为"abc",此时a不可修改但a[i]可修改。
但是引用数组内容时,以上两者a[i]值是相同的。

解决方案三:

char * a = "abc"; 指向常量字符串,只分配了 4 个字节的指针地址,不可以修改 a 中字符串的内容
char a[4] = "abc"; 为 a 分配了空间,可以修改 a 中字符串的内容

解决方案四:

第一个的"abc"是常量,一个数组型指针a指向这个常量。
第二个是的"abc"是变量,是申请了一个4个元素的数组变量,将这个数组变量分别赋值为abc

解决方案五:

?

strcat函数
??? strcat函数用于连结两个字符串。一般形式是:
??????? strcat(字符串1,字符串2);
&n......
答案就在这里:关于C语言字符串数组
----------------------

时间: 2024-11-03 01:30:25

c语言-c 语言 字符串和 数组的相关文章

字符串-[c语言]关于 scanf() 和 char数组 的小实验的问题

问题描述 [c语言]关于 scanf() 和 char数组 的小实验的问题 写了三个小的几乎一样的test代码,但是输出却不同,不明白为什么,求大神指点.全部代码如下:#include void sub1(void); int main(){ /*test1*/ sub1(); /*test2 */char w0[2]={'a''a'}; char * pc0 = w0; printf("" w1 = %s""w0); /*wrong*/printf("&

C++中字符串以及数组和指针的互相使用讲解_C 语言

C++字符串与指针 在C++中可以用3种方法访问一个字符串(在第5章介绍了前两种方法). 用字符数组存放一个字符串 [例]定义一个字符数组并初始化,然后输出其中的字符串. #include <iostream> using namespace std; int main( ) { char str[]="I love CHINA!"; cout<<str<<endl; return 0; } 运行时输出: I love CHINA! 用字符串变量存放

浅谈Go语言中字符串和数组_Golang

go语言里边的字符串处理和PHP还有java 的处理是不一样的,首先申明字符串和修改字符串 复制代码 代码如下: package main import "fmt" var name string           //申明一个字符串 var emptyname string = "" //申明一个空字符串 func main() {  //申明多个字符串并且赋值  a, b, v := "hello", "word", &

c语言-C语言指针,字符串复制过程的问题

问题描述 C语言指针,字符串复制过程的问题 下面是字符串复制的代码,str1[]如果限定大小为10,则会溢出,结果是s2正常,s1输出为 u? 请问为什么是这个结果呢? #include #include int main(){ char *s1; char *s2; char str[] = {""How are you?""}; char str1[10]={}; s1 = str; s2 = str1; while ((*s2 = *s1) != ''){ s

c语言-C语言中的指针和数组的初始化

问题描述 C语言中的指针和数组的初始化 char a[]=""abcdef"";char *p =""cdefg"";a[1]='A';p[1]='A'; 这段代码有什么问题?#include int main(){ char amessage[]=""now is the time""; char *pmessage = ""now is the time"

c语言-C语言关于字符指针变量和字符数组的说法

问题描述 C语言关于字符指针变量和字符数组的说法 下列关于字符指针变量和字符数组的说法错误的是 A)字符指针变量的值可以变化 B)字符数组的值可以变化 C)字符指针变量代表了一个地址 D)字符数组代表了一个地址 ====答案选B,求解释? 解决方案 选择B.字符数组相当于指针常量. 解决方案二: 数组定义时系统给开辟内存单元,数组名相当于数组的开始地址是不能变化的 解决方案三: C语言字符指针和字符数组C语言中,为什么字符串可以赋值给字符指针变量字符数组和字符指针

c语言-C语言利用指针来存输入的字符串的问题

问题描述 C语言利用指针来存输入的字符串的问题 这个函数是可以得到str的: #include <ctype.h> char * getword(char * str) { int i; int ch; while ((ch = getchar()) != EOF && !isspace(ch)) *str++ = ch; *str = ''; if (ch == EOF) return NULL; else { while (ch != ' ') ch = getchar()

c语言-C语言字符串在内存的处理

问题描述 C语言字符串在内存的处理 char a[] = "abcdef"; char *p = "abcdef"; 这两句话有什么区别 解决方案 C语言字符串处理C语言中对字符串的操作处理c语言中常字符串处理的函数 解决方案二: a是一个分配的字符数组,里面存放的字符串 abcdef 第二个是先在常量区存放字符串 abcdef,然后p是一个指针指向常量字符串 解决方案三: a数组作为局部变量被存储在栈区,使用完就被释放了: 第二个abcdef被存储在静态数据区,可

Swift语言指南(十)--字符串与字符

原文:Swift语言指南(十)--字符串与字符 字符串是一段字符的有序集合,如"hellow,world"或"信天翁".Swift 中的字符串由 String 类型表示,对应着 Character 类型值的集合. Swift 中的 String 类型为你的编程提供了一个高速的,兼容 Unicode规范 的文本处理方式.Swift 创建和处理字符串的语法轻量可读,与 C 语言的字符串语法颇为相似.字符串的拼接非常简单,只需将两个字符串用 + 运算符相加.字符串的值是否