I know the concept of register variable and it's use cases but there are few questions in my mind based on what I have tried. I cannot access the address of a register variable in C though I can do it C++! Why? Is there any issue in accessing the addressing of a register variable?Suppose if I declare a string variable in C++ as register, then where will that variable be stored? What is the point in declaring the storage class of non-numeric data types such as 'string' in C++ to be register??UPDATE:I thought that C++ allows us to fetch the address of a register variable, as I was not getting any error in my program which is as follows:#include<iostream>#include<time.h>using namespace std;clock_t beg, en;int main(){    int j, k=0;    beg=clock();    for(register int i=0;i<10000000;i++){        /*if(k==0){            cout<<&i<<endl;    // if this code is uncommented, then C++ rejects the recommendation to make 'i' as register            k++;        }*/    }    en=clock();    cout<<en-beg<<endl;    cout<<&j<<endl<<&k;    return 0;}What I have observed is, if I make the variable 'i' as register and don't try to print the address using '&i' then C++ accepts the recommendation and stores 'i' in register, this can be infered from running time of for loop which will always be around 4-12 ms if 'i' is in register. But if I try to print address of variable 'i' then though I don't get any error but C++ rejects the recommendation and this can be infered from the time of execution of loop which is always more than 25 if i is not register!!So, basically I cannot fetch address of a variable with storage class as register!! WHY?
register variable in C and C++
c++;c;gcc