全局变量在函数中改变

字符串中的字母变成大写:
#include <stdio.h>


void uppercase(char *str){
char* str_temp=str;
while(*str_temp!='\0'){
if((*str_temp>='a')&&(*str_temp<='z'))
*str_temp-=('a'-'A');
str_temp++;
}


}


int main(){
//char *str1="aBcDeF";// str1 is const string,its element can't be modified.
char str1[]="aBcDeF";
uppercase(str1);
printf("%s \n",str1);
printf("a=%d, A=%d\n",'a','A');
return 0;
}

字符串的拷贝:

#include <stdio.h>


char * strcpy_str (char *strDest,const char *strSrc)


{


    // assert((strDest!=NULL)&&(strSrc!=NULL));
    char *strDestCopy=strDest;


    while ((*strDest++=*strSrc++)!='\0');

 /***此时的strDest指向一个字符,并不是指向strDest字符串,strDestCopy事先先记住了原strDest的便于返回****这个我现在才明白/

    return strDestCopy;
}
void main()
{   
 char *str=NULL; 
 char strdest[]="abcdsss";    
str=strcpy_str(strdest,"hello");   
printf("%s \n",str);
}

整型变量的传值:

#include <iostream>
using namespace std;
void GetMemory(int *z)
{
*z=5;
}
int main()
{
int v;
GetMemory(&v);
cout<<v<<endl;
return 0;
}
把v的地址传进去,*z是地址里的值,是v的副本。通过修改地址里的值,不需要有返回值也把v‘给修改了,因为v所指向的地址发生了变化。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值