码迷,mamicode.com
首页 > 其他好文 > 详细

浅谈运用指针引用字符串

时间:2015-10-20 19:49:48      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:指针、字符串

一、字符串的引用方式

1.如果字符串存放在字符数组中可以用数组名和下标引用

char string[10] = "Hello word";
printf("%s",string);

2.用字符指针变量指向字符串常量,用字符指针引用字符串

char *strp = "Hello word";
printf("%s",strp);
//系统将字符串常量以字符数组形式保存在内存中,字符串末尾系统自动加了一个‘\0‘。再将字符数组的首地址赋给字符指针,从此字符指针就指向这个字符串的首地址。

二、字符串在函数之间的传递

 // 1.形参、实参都是数组名
void function(char arr[])
{
        . . . .
}

void main()
{
    char arr[10] = "Hello word";
    function(arr);
         . . . .
}


// 2.形参、实参都是字符指针变量
void function(char *p)
{
        . . . .
}

void main()
{
    char *p = "Hello word";
    function(p);
         . . . .
}

// 3.形参是字符指针变量、实参是字符数组
// 4.形参是字符数组、实参是字符指针变量


三、使用字符数组与指针变量的比较

1.char *str = "Hello word";       //合法
 char arr[10] = "Hello word";       //合法
    
 char *str;      
 str = "Hello word";        //合法
 car arr[10];    
 arr = "Hello word";            //不合法  arr是指针常量不能赋值
  arr[10] = "Hello word"           //不合法   应用 strcpy 进行赋值


2.char str[10] = "Hello";
 char *p = "Word";
 str[0] = ‘h‘;           //合法   数组中个元素的值是可以改变的
 p[0] = ‘w‘;                        //不合法    指针变量指向的字符串常量是不可以改变的
 

3. char  *p = "a = %d";
   printf(p,a);               //合法   指针变量指向一个格式字符串,可以用它替代 printf
                                       函数中的格式字符串


程序:

#include<stdio.h>
#include<string.h>
void examp1e1(char ar1[])
{
	printf("%s\n长度为:%d\n大小为:%d\n\n",ar1,strlen(ar1),sizeof(ar1));
	
}
void example2(char *p)
{
	printf("%s\n长度为:%d\n大小为:%d\n",p,strlen(p),sizeof(p));
	
}
void main()
{
	char *str1 = "Hello word";
    char str2[20] = "I am a boy";
	char ar[20];
	examp1e1(str1);
	example2(str2);
    
}


本文出自 “10747227” 博客,转载请与作者联系!

浅谈运用指针引用字符串

标签:指针、字符串

原文地址:http://10757227.blog.51cto.com/10747227/1704474

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!